package cn.juque.systemservice.service;

import cn.juque.common.base.PageInfo;
import cn.juque.systemservice.domain.RoleFuncRelationDO;
import cn.juque.systemservice.entity.RoleInfo;

import java.util.List;

/**
 * @author JUQUE
 * @version 1.0.0
 * <ul>
 *  <li>simple-generator</li>
 *  <li>角色信息</li>
 * </ul>
 * @date 2022-11-03 23:57:34
 **/
public interface IRoleInfoService {

    /**
     * 查询
     *
     * @param roleInfo roleInfo
     * @return List<RoleInfo>
     */
    List<RoleInfo> listInfoWithoutPage(RoleInfo roleInfo);

    /**
     * 分页查询
     *
     * @param pageInfo pageInfo
     * @param roleInfo roleInfo
     * @return DataGrid<RoleInfo>
     */
    List<RoleInfo> listInfoWithPage(PageInfo pageInfo, RoleInfo roleInfo);

    /**
     * 检索功能列表
     *
     * @param roleId 角色ID
     * @return list
     */
    List<RoleFuncRelationDO> listFuncByRoleId(String roleId);

    /**
     * 详情
     *
     * @param id 主键
     * @return RoleInfo
     */
    RoleInfo detail(String id);

    /**
     * 保存
     *
     * @param roleInfo roleInfo
     */
    void saveInfo(RoleInfo roleInfo);

    /**
     * 保存功能关系
     *
     * @param roleId     角色ID
     * @param funcIdList 功能ID列表
     */
    void saveFuncRelation(String roleId, List<String> funcIdList);

    /**
     * 更新
     *
     * @param roleInfo roleInfo
     */
    void updateInfo(RoleInfo roleInfo);

    /**
     * 删除
     *
     * @param ids 主键列表
     */
    void deleteInfo(List<String> ids);
}
